home *** CD-ROM | disk | FTP | other *** search
- {This is some really GOOD stuff, Bravo Bas! }
- Unit mouser;
- { Mouseunit for textmode. by Bas van Gaalen, Holland. }
- { Slight Additions/Removals by CJ Cliffe }
-
- Interface
-
- Const
- mtypes : Array [0..4] Of String [6] = ('bus', 'serial', 'inport', 'ps/2', 'hp');
-
- Var
- buttons : Word;
- verhi, verlo, mousetype : Byte;
- driverinstalled : Boolean;
-
- Function mouseinstalled : Boolean;
- Procedure resetmouse;
- Procedure getmouseversion;
- Procedure showmouse;
- Procedure hidemouse;
- Function getmousex : Byte;
- Function getmousey : Byte;
- Function leftpressed : Boolean;
- Function rightpressed : Boolean;
- Procedure mousewindow (X1, Y1, X2, Y2 : Byte);
-
-
- Implementation
-
-
- Function mouseinstalled : Boolean; Assembler; Asm
- XOr AX, AX
- Int 33h
- cmp AX, - 1
- je @skip
- XOr AL, AL
- @skip:
- End;
-
- Procedure resetmouse; Assembler;
- Asm
- XOr AX, AX
- Int 33h
- cmp AX, - 1
- jne @skip
- mov driverinstalled, True
- mov buttons, BX
- @skip:
- End;
-
- Procedure getmouseversion; Assembler;
- Asm
- mov AX, 24h
- Int 33h
- mov verhi, BH
- mov verlo, BL
- mov mousetype, CH
- End;
-
- Procedure showmouse; Assembler;
- Asm
- mov AX, 1
- Int 33h
- End;
-
- Procedure hidemouse; Assembler;
- Asm
- mov AX, 2
- Int 33h
- End;
-
- Function getmousex : Byte; Assembler;
- Asm
- mov AX, 3
- Int 33h
- ShR CX, 1
- ShR CX, 1
- ShR CX, 1
- mov AX, CX
- End;
-
- Function getmousey : Byte; Assembler;
- Asm
- mov AX, 3
- Int 33h
- ShR DX, 1
- ShR DX, 1
- ShR DX, 1
- mov AX, DX
- End;
-
- Function leftpressed : Boolean; Assembler;
- Asm
- mov AX, 3
- Int 33h
- And BX, 1
- mov AX, BX
- End;
-
- Function rightpressed : Boolean; Assembler;
- Asm
- mov AX, 3
- Int 33h
- And BX, 2
- mov AX, BX
- End;
-
- Procedure mousewindow (X1, Y1, X2, Y2 : Byte); Assembler;
- Asm
- mov AX, 7
- XOr CH, CH
- XOr DH, DH
- mov CL, X1
- ShL CX, 1
- ShL CX, 1
- ShL CX, 1
- mov DL, X2
- ShL DX, 1
- ShL DX, 1
- ShL DX, 1
- Int 33h
- mov AX, 8
- XOr CH, CH
- XOr DH, DH
- mov CL, Y1
- ShL CX, 1
- ShL CX, 1
- ShL CX, 1
- mov DL, Y2
- ShL DX, 1
- ShL DX, 1
- ShL DX, 1
- Int 33h
- End;
-
- End.